1. Field of the Invention
The present invention relates to data processing systems, and more specifically to a method and apparatus for scheduling tasks quickly in a sequential order.
2. Related Art
Data processing systems are often used to execute user applications (e.g., word processor, spreadsheets, distributed computing, etc). Applications in turn are often supported by multiple tasks. A task is generally implemented in the form of one or more instructions to provide a corresponding utility. Examples of tasks include transferring a segment of data from one memory unit to another and performing complex instructions.
Multiple tasks often need to be executed to support user applications. In general, the tasks often need to share resources such as processors, memories and interconnecting buses for execution. At least due to availability of only limited resources, only some of the tasks can generally be executed in parallel at a given time. Accordingly, data processing systems often include schedulers which coordinate and control execution of the tasks.
Schedulers typically need to be implemented meeting or balancing various requirements. One requirement is that the next task to be executed be determined quickly. In addition, it may be required to suspend a first task after partial execution, execute a second task and then switch back to the execution of the first task.
What is therefore needed is a method and apparatus for scheduling tasks meeting one or more requirements such as those noted above.